﻿//-----------------------------------------------------------------------
// <copyright file="TemplateSlot.cs" company="tuliprules.org">
//     Copyright (c) 2011 tuplelister, tuliprules.org.
// </copyright>
// <summary>This is the TemplateSlot class.</summary>
//-----------------------------------------------------------------------

namespace Tulip.Engine.Models.ClosedWorld
{
    using System.Windows.Markup;

    /// <summary>
    /// Represents an ontological template slot.
    /// </summary>
    [ContentProperty("MemberBinding")]
    public class TemplateSlot : ElementBase
    {
        /// <summary>
        /// Gets or sets the position of slot.   Used only for ordered tuples.
        /// </summary>
        public int Position { get; set; }

        /// <summary>
        /// Gets or sets the reference to corresponding attribute.
        /// </summary>
        public string Attribute { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether the attribute value will be cached at runtime.
        /// </summary>
        public bool Cache { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether the tuples are indexed by values of this attribute.
        /// </summary>
        public bool IndexedBy { get; set; }
    }
}
